# 遍历和查询
# list.index()
# list.count()
# in

# 获取
# dict.get():根据key获取value，如果key不存在，返回None
# dict[key]:根据key获取value，如果key不存在，会报错

book = {'书名': '三体', '作者': '刘慈欣', '价格': 59}
value = book.get('书名') # get()方法，如果键不存在，返回None
print(value)
print(len(book))
# value = book['书名'] # 如果键不存在，会报错
# print(value)
print('-------------------------------------')
# list = [1, 2, 3, 4]
# for i in list:
#     print(i)

# 如果使用for循环遍历字典，默认遍历的是key
# for i in book:
#     print(i) #书名      作者      价格

print(book.values()) # dict_values(['三体', '刘慈欣', 59])

# 获取字典中所有的value值： 字典.value() 就是将所有的值存放到了一个列表
# for v in book.values():
#     print(v)

print(book.keys()) # dict_keys(['书名', '作者', '价格'])

# 获取字典中所有的key值： 字典.keys() 就是将所有的键存放到了一个列表
# for k in book.keys():
#     print(k)

print(book.items()) # dict_items([('书名', '三体'), ('作者', '刘慈欣'), ('价格', 59)])

# 获取字典中所有的键值对： 字典.items() 就是将所有的键值对存放到了一个列表
for k,v in book.items():
    print(k, v)

book.setdefault('出版社', '重庆出版社') # 如果键不存在，则添加键值对 类似: book[key] = value
print(book)

dict1 = {'a':10, 'b':20}
book.update(dict1) # 将dict1中的键值对添加到book中
print(book)

result = book.fromkeys(dict1) # 将dict1中的键作为result的键，值默认为None
print(result) # {'a': None, 'b': None}

result = book.fromkeys(['c', 'd'],[10]) # 将['c', 'd']作为result的键，值默认为[10]
print(result) # {'c': [10], 'd': [10]}
result = book.fromkeys(['c', 'd'],[10,13]) # 将['c', 'd']作为result的键，值默认为[10,13]
print(result) # {'c': [10, 13], 'd': [10, 13]}
print('-------------------------------------')
'''
books =[] 能存放多本书
书：{}
书名 作者 价格 
添加3本书
1.添加书 不能添加同名书籍
'''
books = []
j = 1
while True:
    book = {}
    print('正在添加第%d本书' % j)
    book['书名'] = input('请输入书名：')
    book['作者'] = input('请输入作者：')
    book['价格'] = input('请输入价格：')
    if book['书名'] in [i['书名'] for i in books]:
        print('书名已存在,请重新输入')
        continue
    books.append(book)
    j += 1
    if j == 4:
        break
print(books)



